//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package com.itheima.pinda.authority.dto.auth;

import com.itheima.pinda.authority.enumeration.auth.Sex;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.time.LocalDateTime;
import javax.validation.constraints.NotEmpty;
import org.hibernate.validator.constraints.Length;

@ApiModel(
        value = "UserDTO",
        description = "用户"
)
public class UserDTO implements Serializable {
    @ApiModelProperty("ID")
    private Long id;
    @ApiModelProperty("账号")
    @NotEmpty(
            message = "账号不能为空"
    )
    @Length(
            max = 30,
            message = "账号长度不能超过30"
    )
    private String account;
    @ApiModelProperty("姓名")
    @NotEmpty(
            message = "姓名不能为空"
    )
    @Length(
            max = 50,
            message = "姓名长度不能超过50"
    )
    private String name;
    @ApiModelProperty("组织ID")
    private Long orgId;
    @ApiModelProperty("岗位ID")
    private Long stationId;
    @ApiModelProperty("邮箱")
    @Length(
            max = 255,
            message = "邮箱长度不能超过255"
    )
    private String email;
    @ApiModelProperty("手机")
    @Length(
            max = 20,
            message = "手机长度不能超过20"
    )
    private String mobile;
    @ApiModelProperty("性别")
    private Sex sex;
    @ApiModelProperty("启用状态 1启用 0禁用")
    private Boolean status;
    @ApiModelProperty("头像")
    private String avatar;
    @ApiModelProperty("工作描述")
    private String workDescribe;
    @ApiModelProperty("最后登录时间")
    private LocalDateTime lastLoginTime;

    public static UserDTOBuilder builder() {
        return new UserDTOBuilder();
    }

    public Long getId() {
        return this.id;
    }

    public String getAccount() {
        return this.account;
    }

    public String getName() {
        return this.name;
    }

    public Long getOrgId() {
        return this.orgId;
    }

    public Long getStationId() {
        return this.stationId;
    }

    public String getEmail() {
        return this.email;
    }

    public String getMobile() {
        return this.mobile;
    }

    public Sex getSex() {
        return this.sex;
    }

    public Boolean getStatus() {
        return this.status;
    }

    public String getAvatar() {
        return this.avatar;
    }

    public String getWorkDescribe() {
        return this.workDescribe;
    }

    public LocalDateTime getLastLoginTime() {
        return this.lastLoginTime;
    }

    public UserDTO setId(final Long id) {
        this.id = id;
        return this;
    }

    public UserDTO setAccount(final String account) {
        this.account = account;
        return this;
    }

    public UserDTO setName(final String name) {
        this.name = name;
        return this;
    }

    public UserDTO setOrgId(final Long orgId) {
        this.orgId = orgId;
        return this;
    }

    public UserDTO setStationId(final Long stationId) {
        this.stationId = stationId;
        return this;
    }

    public UserDTO setEmail(final String email) {
        this.email = email;
        return this;
    }

    public UserDTO setMobile(final String mobile) {
        this.mobile = mobile;
        return this;
    }

    public UserDTO setSex(final Sex sex) {
        this.sex = sex;
        return this;
    }

    public UserDTO setStatus(final Boolean status) {
        this.status = status;
        return this;
    }

    public UserDTO setAvatar(final String avatar) {
        this.avatar = avatar;
        return this;
    }

    public UserDTO setWorkDescribe(final String workDescribe) {
        this.workDescribe = workDescribe;
        return this;
    }

    public UserDTO setLastLoginTime(final LocalDateTime lastLoginTime) {
        this.lastLoginTime = lastLoginTime;
        return this;
    }

    public UserDTO() {
    }

    public UserDTO(final Long id, final String account, final String name, final Long orgId, final Long stationId, final String email, final String mobile, final Sex sex, final Boolean status, final String avatar, final String workDescribe, final LocalDateTime lastLoginTime) {
        this.id = id;
        this.account = account;
        this.name = name;
        this.orgId = orgId;
        this.stationId = stationId;
        this.email = email;
        this.mobile = mobile;
        this.sex = sex;
        this.status = status;
        this.avatar = avatar;
        this.workDescribe = workDescribe;
        this.lastLoginTime = lastLoginTime;
    }

    public String toString() {
        return "UserDTO(super=" + super.toString() + ", id=" + this.getId() + ", account=" + this.getAccount() + ", name=" + this.getName() + ", orgId=" + this.getOrgId() + ", stationId=" + this.getStationId() + ", email=" + this.getEmail() + ", mobile=" + this.getMobile() + ", sex=" + this.getSex() + ", status=" + this.getStatus() + ", avatar=" + this.getAvatar() + ", workDescribe=" + this.getWorkDescribe() + ", lastLoginTime=" + this.getLastLoginTime() + ")";
    }

    public boolean equals(final Object o) {
        if (o == this) {
            return true;
        } else if (!(o instanceof UserDTO)) {
            return false;
        } else {
            UserDTO other = (UserDTO)o;
            if (!other.canEqual(this)) {
                return false;
            } else {
                label155: {
                    Object this$id = this.getId();
                    Object other$id = other.getId();
                    if (this$id == null) {
                        if (other$id == null) {
                            break label155;
                        }
                    } else if (this$id.equals(other$id)) {
                        break label155;
                    }

                    return false;
                }

                Object this$account = this.getAccount();
                Object other$account = other.getAccount();
                if (this$account == null) {
                    if (other$account != null) {
                        return false;
                    }
                } else if (!this$account.equals(other$account)) {
                    return false;
                }

                Object this$name = this.getName();
                Object other$name = other.getName();
                if (this$name == null) {
                    if (other$name != null) {
                        return false;
                    }
                } else if (!this$name.equals(other$name)) {
                    return false;
                }

                label134: {
                    Object this$orgId = this.getOrgId();
                    Object other$orgId = other.getOrgId();
                    if (this$orgId == null) {
                        if (other$orgId == null) {
                            break label134;
                        }
                    } else if (this$orgId.equals(other$orgId)) {
                        break label134;
                    }

                    return false;
                }

                label127: {
                    Object this$stationId = this.getStationId();
                    Object other$stationId = other.getStationId();
                    if (this$stationId == null) {
                        if (other$stationId == null) {
                            break label127;
                        }
                    } else if (this$stationId.equals(other$stationId)) {
                        break label127;
                    }

                    return false;
                }

                label120: {
                    Object this$email = this.getEmail();
                    Object other$email = other.getEmail();
                    if (this$email == null) {
                        if (other$email == null) {
                            break label120;
                        }
                    } else if (this$email.equals(other$email)) {
                        break label120;
                    }

                    return false;
                }

                Object this$mobile = this.getMobile();
                Object other$mobile = other.getMobile();
                if (this$mobile == null) {
                    if (other$mobile != null) {
                        return false;
                    }
                } else if (!this$mobile.equals(other$mobile)) {
                    return false;
                }

                label106: {
                    Object this$sex = this.getSex();
                    Object other$sex = other.getSex();
                    if (this$sex == null) {
                        if (other$sex == null) {
                            break label106;
                        }
                    } else if (this$sex.equals(other$sex)) {
                        break label106;
                    }

                    return false;
                }

                Object this$status = this.getStatus();
                Object other$status = other.getStatus();
                if (this$status == null) {
                    if (other$status != null) {
                        return false;
                    }
                } else if (!this$status.equals(other$status)) {
                    return false;
                }

                label92: {
                    Object this$avatar = this.getAvatar();
                    Object other$avatar = other.getAvatar();
                    if (this$avatar == null) {
                        if (other$avatar == null) {
                            break label92;
                        }
                    } else if (this$avatar.equals(other$avatar)) {
                        break label92;
                    }

                    return false;
                }

                Object this$workDescribe = this.getWorkDescribe();
                Object other$workDescribe = other.getWorkDescribe();
                if (this$workDescribe == null) {
                    if (other$workDescribe != null) {
                        return false;
                    }
                } else if (!this$workDescribe.equals(other$workDescribe)) {
                    return false;
                }

                Object this$lastLoginTime = this.getLastLoginTime();
                Object other$lastLoginTime = other.getLastLoginTime();
                if (this$lastLoginTime == null) {
                    if (other$lastLoginTime != null) {
                        return false;
                    }
                } else if (!this$lastLoginTime.equals(other$lastLoginTime)) {
                    return false;
                }

                return true;
            }
        }
    }

    protected boolean canEqual(final Object other) {
        return other instanceof UserDTO;
    }

    public int hashCode() {
        boolean PRIME = true;
        int result = 1;
        Object $id = this.getId();
        result = result * 59 + ($id == null ? 43 : $id.hashCode());
        Object $account = this.getAccount();
        result = result * 59 + ($account == null ? 43 : $account.hashCode());
        Object $name = this.getName();
        result = result * 59 + ($name == null ? 43 : $name.hashCode());
        Object $orgId = this.getOrgId();
        result = result * 59 + ($orgId == null ? 43 : $orgId.hashCode());
        Object $stationId = this.getStationId();
        result = result * 59 + ($stationId == null ? 43 : $stationId.hashCode());
        Object $email = this.getEmail();
        result = result * 59 + ($email == null ? 43 : $email.hashCode());
        Object $mobile = this.getMobile();
        result = result * 59 + ($mobile == null ? 43 : $mobile.hashCode());
        Object $sex = this.getSex();
        result = result * 59 + ($sex == null ? 43 : $sex.hashCode());
        Object $status = this.getStatus();
        result = result * 59 + ($status == null ? 43 : $status.hashCode());
        Object $avatar = this.getAvatar();
        result = result * 59 + ($avatar == null ? 43 : $avatar.hashCode());
        Object $workDescribe = this.getWorkDescribe();
        result = result * 59 + ($workDescribe == null ? 43 : $workDescribe.hashCode());
        Object $lastLoginTime = this.getLastLoginTime();
        result = result * 59 + ($lastLoginTime == null ? 43 : $lastLoginTime.hashCode());
        return result;
    }

    public static class UserDTOBuilder {
        private Long id;
        private String account;
        private String name;
        private Long orgId;
        private Long stationId;
        private String email;
        private String mobile;
        private Sex sex;
        private Boolean status;
        private String avatar;
        private String workDescribe;
        private LocalDateTime lastLoginTime;

        UserDTOBuilder() {
        }

        public UserDTOBuilder id(final Long id) {
            this.id = id;
            return this;
        }

        public UserDTOBuilder account(final String account) {
            this.account = account;
            return this;
        }

        public UserDTOBuilder name(final String name) {
            this.name = name;
            return this;
        }

        public UserDTOBuilder orgId(final Long orgId) {
            this.orgId = orgId;
            return this;
        }

        public UserDTOBuilder stationId(final Long stationId) {
            this.stationId = stationId;
            return this;
        }

        public UserDTOBuilder email(final String email) {
            this.email = email;
            return this;
        }

        public UserDTOBuilder mobile(final String mobile) {
            this.mobile = mobile;
            return this;
        }

        public UserDTOBuilder sex(final Sex sex) {
            this.sex = sex;
            return this;
        }

        public UserDTOBuilder status(final Boolean status) {
            this.status = status;
            return this;
        }

        public UserDTOBuilder avatar(final String avatar) {
            this.avatar = avatar;
            return this;
        }

        public UserDTOBuilder workDescribe(final String workDescribe) {
            this.workDescribe = workDescribe;
            return this;
        }

        public UserDTOBuilder lastLoginTime(final LocalDateTime lastLoginTime) {
            this.lastLoginTime = lastLoginTime;
            return this;
        }

        public UserDTO build() {
            return new UserDTO(this.id, this.account, this.name, this.orgId, this.stationId, this.email, this.mobile, this.sex, this.status, this.avatar, this.workDescribe, this.lastLoginTime);
        }

        public String toString() {
            return "UserDTO.UserDTOBuilder(id=" + this.id + ", account=" + this.account + ", name=" + this.name + ", orgId=" + this.orgId + ", stationId=" + this.stationId + ", email=" + this.email + ", mobile=" + this.mobile + ", sex=" + this.sex + ", status=" + this.status + ", avatar=" + this.avatar + ", workDescribe=" + this.workDescribe + ", lastLoginTime=" + this.lastLoginTime + ")";
        }
    }
}
